% THIS IS SIGPROC-SP.TEX - VERSION 3.1
% WORKS WITH V3.2SP OF ACM_PROC_ARTICLE-SP.CLS
% APRIL 2009
%
% It is an example file showing how to use the 'acm_proc_article-sp.cls' V3.2SP
% LaTeX2e document class file for Conference Proceedings submissions.
% ----------------------------------------------------------------------------------------------------------------
% This .tex file (and associated .cls V3.2SP) *DOES NOT* produce:
%       1) The Permission Statement
%       2) The Conference (location) Info information
%       3) The Copyright Line with ACM deedings format) report ("report.pdf") on the project.  This report should be in the style of a scientific paper (e.g. a cata
%       4) Page numbering
% ---------------------------------------------------------------------------------------------------------------
% It is an example which *does* use the .bib file (from which the .bbl file
% is produced).
% REMEMBER HOWEVER: After having produced the .bbl file,
% and prior to final submission,
% you need to 'insert'  your .bbl file into your source .tex file so as to provide
% ONE 'self-contained' source file.
%
% Questions regarding SIGS should be sent to
% Adrienne Griscti ---> griscti@acm.org
%
% Questions/suggestions regarding the guidelines, .tex and .cls files, etc. to
% Gerald Murray ---> murray@hq.acm.org
%
% For tracking purposes - this is V3.1SP - APRIL 2009

\documentclass{acm_proc_article-sp}

\usepackage{fancyvrb}
\usepackage[nocolor]{drawstack}
\usepackage{amsmath}
\usepackage{verbatim}
\usepackage{url}
\usepackage{placeins}
\usepackage{footnote}
\usepackage{rotating}
\usepackage{graphicx}
\VerbatimFootnotes

\begin{document}

\title{R: An End-to-End Return-Oriented-Programming Payload Generator}
%
% You need the command \numberofauthors to handle the 'placement
% and alignment' of the authors beneath the title.
%
% For aesthetic reasons, we recommend 'three authors at a time'
% i.e. three 'name/affiliation blocks' be placed beneath the title.
%
% NOTE: You are NOT restricted in how many 'rows' of
% "name/affiliations" may appear. We just ask that you restrict
% the number of 'columns' to three.
%
% Because of the available 'opening page real-estate'
% we ask you to refrain from putting more than six authors
% (two rows with three columns) beneath the article title.
% More than six makes the first-page appear very cluttered indeed.
%
% Use the \alignauthor commands to handle the names
% and affiliations for an 'aesthetic maximum' of six authors.
% Add names, affiliations, addresses for
% the seventh etc. author(s) as the argument for the
% \additionalauthors command.
% These 'additional authors' will be output/set for you
% without further effort on your part as the last section in
% the body of your article BEFORE References or any Appendices.

\numberofauthors{5} %  in this sample file, there are a *total*
% of EIGHT authors. SIX appear on the 'first-page' (for formatting
% reasons) and the remaining two appear in the \additionalauthors section.
%
\author{
% You can go ahead and credit any number of authors here,
% e.g. one 'row of three' or two rows (consisting of one row of three
% and a second row of one, two or three).
%
% The command \alignauthor (no curly braces needed) should
% precede each author name, affiliation/snail-mail address and
% e-mail address. Additionally, tag each line of
% affiliation/address with \affaddr, and tag the
% e-mail address with \email.
%
% 1st. author
\alignauthor Andy Erickson\\
  \affaddr{University of Minnesota}\\
  \email{eric2644@umn.edu}
% 2nd. author
\alignauthor Dan DaCosta\\
  \affaddr{University of Minnesota}\\
  \email{dacos014@umn.edu}
% 3rd. author
\alignauthor Will Myott\\
  \affaddr{University of Minnesota}\\
  \email{myott004@umn.edu}
\and  % use '\and' if you need 'another row' of author names
% 4th. author
\alignauthor Stephen McCray\\
  \affaddr{University of Minnesota}\\
  \email{mccr0116@umn.edu}
% 5th. author
\alignauthor Jay Mairet\\ \affaddr{University of Minnesota}\\ \email{maire001@umn.edu} }

% There's nothing stopping you putting the seventh, eighth, etc.
% author on the opening page (as the 'third row') but we ask,
% for aesthetic reasons that you place these 'additional authors'
% in the \additional authors block, viz.
% Just remember to make sure that the TOTAL number of authors
% is the number that will appear on the first page PLUS the
% number that will appear in the \additionalauthors section.

\maketitle
\begin{abstract}
We present in this paper our application $R$\footnote{This stems from a joke made by James Bond in \textit{The World is Not Enough}. After an assistant to Q was introduced, James Bond inquires to Q, "If you're Q, does that make him R?"}, an end-to-end ROP payload generator, based on a similar application called $Q$ by Edward Schwartz, et. al. \cite{schwartz}.  Using the Binary Analysis Platform (BAP), we created a method for extracting and classifying useful instruction sequences within a target binary.  We also invented a payload description language supporting complex inlined stack structures, as well as run-time ROP techniques for resolving both pointers in these structures and addresses of gadgets residing in lib(c).  Five diverse payloads were created, which succeeded on a test binary with both ASLR and W$\oplus$X policies activated.  We also present a comparison with ROPgadget, an existing ROP payload tool.  We report 100\% success with all test payloads, but a 130\% to 2478\% increase in payload size from ordinary shellcode.
\end{abstract}

% A category with the (minimum) three required fields
%\category{H.4}{Information Systems Applications}{Miscellaneous}
%A category including the fourth, optional field follows...
%\category{D.2.8}{Software Engineering}{Metrics}[complexity measures, performance measures]

%\terms{ROP, exploit}

\section{Background}
\input{background}

\section{Gadget Detection and Classification}
\label{sec:classification}
\input{gadgetdetclass}

\newpage
\section{Input language and stack structures}
\label{sec:input_language}
\input{inputlang}

\section{Gadget assignment}
\input{gadgetassgn}

\section{Resolution}
\label{sec:resolution}
\input{resolution}

%\FloatBarrier
\section{Results}
\input{results}

\section{Future Work}
\input{futurework}

\section{Conclusions}
\input{conclusion}

\section{Acknowledgements}
We thank David Brumley, et. al. at Carnegie Mellon for making their Binary Analysis Platform freely available.

\bibliographystyle{abbrv}
\bibliography{report}

\pagebreak

% \balancecolumns

%% \FloatBarrier

\newpage
\null
\newpage
\appendix
\input{payloads}
%\section{Contrived Test Binary}
%\input{contrivedbinary}


\end{document}
